﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Fuyao.Business.Entities.Models;
using Fuyao.Business.Logic.BC;
using Fuyao.Win.UI.Util;

namespace Fuyao.Win.UI
{
    public partial class frmSelectCliente : Form
    {
        BusinessLogic bc = new BusinessLogic();

        List<Cliente> listCliente = new List<Cliente>();
        bool wasSelected = false;
        #region Properties
        public Cliente ClienteSeleccionado { get; set; }
        #endregion

        public frmSelectCliente()
        {
            InitializeComponent();
        }

        protected override void OnLoad(EventArgs e)
        {
            Utilitarios.configurarGrilla(ref dgvClientes);
            setColumnasGrilla();
            cargarGrillaclientes(true);
        }

        private void btnBuscarCliente_Click(object sender, EventArgs e)
        {
            cargarGrillaclientes(false); 
        }

        private void setColumnasGrilla()
        {
            ColClienteID.DataPropertyName = "ClienteID";
            colCodigo.DataPropertyName = "CodigoCliente";
            colRazonSocial.DataPropertyName = "NombreCliente";
            ColDireccion.DataPropertyName = "Direccion";
            colIsPrincipal.DataPropertyName = "IsPrincipalDesc";
        }

        private void cargarGrillaclientes(bool _flag)
        {
            Cliente beCliente = new Cliente();
            beCliente.CodigoCliente = this.txtCodigo.Text.Trim() == string.Empty ? "0" : this.txtCodigo.Text.Trim();
            beCliente.NombreCliente = this.txtRazonSocial.Text.Trim() == string.Empty ? "0" : this.txtRazonSocial.Text.Trim();
            beCliente.Estado = true;
            listCliente = bc.getClienteByFilerAllAddress(beCliente);
            if (listCliente.Count > 0) dgvClientes.DataSource = listCliente;
            else
            {
                if (!_flag)
                {
                    MessageBox.Show("No se encontraron registros, verifique los filtros de búsqueda", "Sistema FUYAO - Mensaje de Confirmación", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                    dgvClientes.DataSource = null;
                }
            }
        }

        private void btnSelectCliente_Click(object sender, EventArgs e)
        {
            if (dgvClientes.Rows.Count > 0) addDatosCliente();
        }

        private void addDatosCliente()
        {
            if (dgvClientes.CurrentRow.DataBoundItem != null)
            {
                ClienteSeleccionado = (Cliente)dgvClientes.CurrentRow.DataBoundItem;
                wasSelected = true;
            }
            else
                ClienteSeleccionado = null;
            this.Close();
        }

        private void dgvClientes_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
        {
            if (e.RowIndex > -1) addDatosCliente();   
        }

        private void frmSelectCliente_KeyPress(object sender, KeyPressEventArgs e)
        {
            Utilitarios.cerrarFormularioEscape(e, this);
        }
       
    }
}
